Media files, including audio files, provide a convenient and cost effective way for recording, transporting and playback of media content. Media playback ability is available in a vast array of software and devices, including personal computers, personal stereos, mobile terminals, mobile phones, PDAs (Personal Digital Assistant), etc. Such media files may be provided in many formats, including files stored on a recording medium or memory device, or streamed over a transport connection.
Standardized media file formats, including MP3 (MPEG 1 Layer III), AAC (Advanced Audio Coding), and others have helped to promote such systems. Such media files offer a reasonable compromise of data compression vs. media quality. For such files, the file content must be decoded during playback, which requires some level of data processing power in the playback system.
Many media file formats, for example MP3 audio files, parse the audio data into frames, which consist of a header section and a data payload section. With some exception, each frame is a standalone unit, and can be decoded and played separately from other frames, or in a different order. This advantage allows streaming of data as well as other operations such as cutting, looping, and other transport options.
However, the lack of inter-frame information may present difficulties for playback, especially for an ability to pause, seek backwards, and seek forwards. Further, some media formats require exact frame position to be maintained separately and located in order to continue decoding.
Further, in some portable applications such as mobile phones, playback may be manually or automatically paused for example when a ring tone is played for an incoming phone call. When this occurs, the content playback can be preempted and the decoder deallocated. When the content playback is resumed, it should start from the same location where it was paused. Furthermore, some mobile device architectures have deallocated decoders when paused, and a short interval between pause and resume makes any errors in resumed playback position approximations more evident, and the user experience less acceptable.
Some audio formats provide a limited frame table in the content itself along with sync words on the frame headers. An approximate position in the data can be calculated when seeking to a position, and then a sync word can be located and decoding continued. However, errors are inevitable when the content is variable bit rate (VBR) and calculations are used when seeking. MP3 VBR encoded audio may contain a frame table of 100 entries, which reduces accuracy as the content length is increased. MP3 files may have content longer than a typical 5 minute song, such as MP3 audio books and podcasts, thus making position calculations based on minimal frame table content more prone to error.